/**
 * AjustesPanel.java
 * @author Paulo Chang, Carnet 11076
 * @author Oscar Castañeda, Carnet 11086
 * @author Francisco Martínez, Carnet 11096
 * @since 05/11/2011
 * Modificado por última vez el 05/11/2011.
 * Descripción: Clase de interfaz gráfica que permite al usuario realizar la 
 * búsqueda de una palabra clave entre los título de sus categorías.
 */


import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class BusquedaPanel extends javax.swing.JPanel {

    //Atributos
    Opciones buscador;
    
    /**
     * Inicialia el panel de búsqueda, junto con todo sus componentes.
     * @param opciones Opciones que permiten llevar un registro de las tablas existentes,
     * así como buscar en ellas.
     */
    public BusquedaPanel(Opciones opciones) {
        //Se guarda el parámetro recibido como atributo.
        buscador = opciones;
        initComponents();
        //Se instancia el listener y se añade al único botón existente.
        Listener listener = new Listener();
        botonBuscar.addActionListener(listener);
    }
    
    /**
     * Clase interna que actúa como listener para el botónBuscar.
     */
    private class Listener implements ActionListener{

        @Override
        /**
         * Indica al programa que hacer cuando el botonBuscar es presionado.
         */
        public void actionPerformed(ActionEvent e) {
            if (botonBuscar.equals(e.getSource())){
                String textoABuscar = ingresoPalabraClave.getText();
                String resultado = buscador.realizarBusqueda(textoABuscar);
                resultadoBusqueda.setText(resultado);
                ingresoPalabraClave.setText("");
            }
        }
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        panelBusqueda = new javax.swing.JPanel();
        busquedaTitulo = new javax.swing.JLabel();
        ingresoPalabraClave = new javax.swing.JTextField();
        botonBuscar = new javax.swing.JButton();
        panelResultado = new javax.swing.JPanel();
        scroll = new javax.swing.JScrollPane();
        resultadoBusqueda = new javax.swing.JLabel();

        panelBusqueda.setBorder(javax.swing.BorderFactory.createTitledBorder("Búsqueda"));

        busquedaTitulo.setText("Palabra Clave");

        botonBuscar.setText("Buscar");

        javax.swing.GroupLayout panelBusquedaLayout = new javax.swing.GroupLayout(panelBusqueda);
        panelBusqueda.setLayout(panelBusquedaLayout);
        panelBusquedaLayout.setHorizontalGroup(
            panelBusquedaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelBusquedaLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(panelBusquedaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(panelBusquedaLayout.createSequentialGroup()
                        .addComponent(busquedaTitulo)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(ingresoPalabraClave, javax.swing.GroupLayout.DEFAULT_SIZE, 278, Short.MAX_VALUE))
                    .addComponent(botonBuscar, javax.swing.GroupLayout.Alignment.TRAILING))
                .addContainerGap())
        );
        panelBusquedaLayout.setVerticalGroup(
            panelBusquedaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelBusquedaLayout.createSequentialGroup()
                .addGroup(panelBusquedaLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(busquedaTitulo)
                    .addComponent(ingresoPalabraClave, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(botonBuscar)
                .addContainerGap())
        );

        panelResultado.setBorder(javax.swing.BorderFactory.createTitledBorder("Resultado"));

        resultadoBusqueda.setText("No se ha realizado búsqueda alguna.");
        resultadoBusqueda.setVerticalAlignment(javax.swing.SwingConstants.TOP);
        scroll.setViewportView(resultadoBusqueda);

        javax.swing.GroupLayout panelResultadoLayout = new javax.swing.GroupLayout(panelResultado);
        panelResultado.setLayout(panelResultadoLayout);
        panelResultadoLayout.setHorizontalGroup(
            panelResultadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelResultadoLayout.createSequentialGroup()
                .addContainerGap()
                .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 348, Short.MAX_VALUE)
                .addContainerGap())
        );
        panelResultadoLayout.setVerticalGroup(
            panelResultadoLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(panelResultadoLayout.createSequentialGroup()
                .addComponent(scroll, javax.swing.GroupLayout.DEFAULT_SIZE, 147, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(panelResultado, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(panelBusqueda, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(panelBusqueda, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(panelResultado, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
    }// </editor-fold>//GEN-END:initComponents

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton botonBuscar;
    private javax.swing.JLabel busquedaTitulo;
    private javax.swing.JTextField ingresoPalabraClave;
    private javax.swing.JPanel panelBusqueda;
    private javax.swing.JPanel panelResultado;
    private javax.swing.JLabel resultadoBusqueda;
    private javax.swing.JScrollPane scroll;
    // End of variables declaration//GEN-END:variables
}
